﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Psm.Messaging;
using Psm.Transport;

namespace Psm.Protocol
{
    public interface IProtocol
    {
        void InitializeProtocol(IClientTransport clientTransport, IMessageFactory clientSession);
        void StartProcessing();
        void SendMessage(IMessage message);
        void Flush(); //only for testing needs to be removed
        event EventHandler<NewMessageEventArgs> NewMessage;
        event EventHandler<ProtocolShutdownEventArgs> ProtocolShutdown;
        
    }
}
